package com.gridmobi.xrtb.domain.dsp;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class JOfferTestlinkExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Integer offset;

    public JOfferTestlinkExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andOfferidIsNull() {
            addCriterion("offerId is null");
            return (Criteria) this;
        }

        public Criteria andOfferidIsNotNull() {
            addCriterion("offerId is not null");
            return (Criteria) this;
        }

        public Criteria andOfferidEqualTo(String value) {
            addCriterion("offerId =", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotEqualTo(String value) {
            addCriterion("offerId <>", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidGreaterThan(String value) {
            addCriterion("offerId >", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidGreaterThanOrEqualTo(String value) {
            addCriterion("offerId >=", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidLessThan(String value) {
            addCriterion("offerId <", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidLessThanOrEqualTo(String value) {
            addCriterion("offerId <=", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidLike(String value) {
            addCriterion("offerId like", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotLike(String value) {
            addCriterion("offerId not like", value, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidIn(List<String> values) {
            addCriterion("offerId in", values, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotIn(List<String> values) {
            addCriterion("offerId not in", values, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidBetween(String value1, String value2) {
            addCriterion("offerId between", value1, value2, "offerid");
            return (Criteria) this;
        }

        public Criteria andOfferidNotBetween(String value1, String value2) {
            addCriterion("offerId not between", value1, value2, "offerid");
            return (Criteria) this;
        }

        public Criteria andCountryIsNull() {
            addCriterion("country is null");
            return (Criteria) this;
        }

        public Criteria andCountryIsNotNull() {
            addCriterion("country is not null");
            return (Criteria) this;
        }

        public Criteria andCountryEqualTo(String value) {
            addCriterion("country =", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotEqualTo(String value) {
            addCriterion("country <>", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryGreaterThan(String value) {
            addCriterion("country >", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryGreaterThanOrEqualTo(String value) {
            addCriterion("country >=", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryLessThan(String value) {
            addCriterion("country <", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryLessThanOrEqualTo(String value) {
            addCriterion("country <=", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryLike(String value) {
            addCriterion("country like", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotLike(String value) {
            addCriterion("country not like", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryIn(List<String> values) {
            addCriterion("country in", values, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotIn(List<String> values) {
            addCriterion("country not in", values, "country");
            return (Criteria) this;
        }

        public Criteria andCountryBetween(String value1, String value2) {
            addCriterion("country between", value1, value2, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotBetween(String value1, String value2) {
            addCriterion("country not between", value1, value2, "country");
            return (Criteria) this;
        }

        public Criteria andOsnameIsNull() {
            addCriterion("osName is null");
            return (Criteria) this;
        }

        public Criteria andOsnameIsNotNull() {
            addCriterion("osName is not null");
            return (Criteria) this;
        }

        public Criteria andOsnameEqualTo(String value) {
            addCriterion("osName =", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameNotEqualTo(String value) {
            addCriterion("osName <>", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameGreaterThan(String value) {
            addCriterion("osName >", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameGreaterThanOrEqualTo(String value) {
            addCriterion("osName >=", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameLessThan(String value) {
            addCriterion("osName <", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameLessThanOrEqualTo(String value) {
            addCriterion("osName <=", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameLike(String value) {
            addCriterion("osName like", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameNotLike(String value) {
            addCriterion("osName not like", value, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameIn(List<String> values) {
            addCriterion("osName in", values, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameNotIn(List<String> values) {
            addCriterion("osName not in", values, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameBetween(String value1, String value2) {
            addCriterion("osName between", value1, value2, "osname");
            return (Criteria) this;
        }

        public Criteria andOsnameNotBetween(String value1, String value2) {
            addCriterion("osName not between", value1, value2, "osname");
            return (Criteria) this;
        }

        public Criteria andStepsIsNull() {
            addCriterion("steps is null");
            return (Criteria) this;
        }

        public Criteria andStepsIsNotNull() {
            addCriterion("steps is not null");
            return (Criteria) this;
        }

        public Criteria andStepsEqualTo(Integer value) {
            addCriterion("steps =", value, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsNotEqualTo(Integer value) {
            addCriterion("steps <>", value, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsGreaterThan(Integer value) {
            addCriterion("steps >", value, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsGreaterThanOrEqualTo(Integer value) {
            addCriterion("steps >=", value, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsLessThan(Integer value) {
            addCriterion("steps <", value, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsLessThanOrEqualTo(Integer value) {
            addCriterion("steps <=", value, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsIn(List<Integer> values) {
            addCriterion("steps in", values, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsNotIn(List<Integer> values) {
            addCriterion("steps not in", values, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsBetween(Integer value1, Integer value2) {
            addCriterion("steps between", value1, value2, "steps");
            return (Criteria) this;
        }

        public Criteria andStepsNotBetween(Integer value1, Integer value2) {
            addCriterion("steps not between", value1, value2, "steps");
            return (Criteria) this;
        }

        public Criteria andTesttimeIsNull() {
            addCriterion("testTime is null");
            return (Criteria) this;
        }

        public Criteria andTesttimeIsNotNull() {
            addCriterion("testTime is not null");
            return (Criteria) this;
        }

        public Criteria andTesttimeEqualTo(Date value) {
            addCriterion("testTime =", value, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeNotEqualTo(Date value) {
            addCriterion("testTime <>", value, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeGreaterThan(Date value) {
            addCriterion("testTime >", value, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeGreaterThanOrEqualTo(Date value) {
            addCriterion("testTime >=", value, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeLessThan(Date value) {
            addCriterion("testTime <", value, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeLessThanOrEqualTo(Date value) {
            addCriterion("testTime <=", value, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeIn(List<Date> values) {
            addCriterion("testTime in", values, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeNotIn(List<Date> values) {
            addCriterion("testTime not in", values, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeBetween(Date value1, Date value2) {
            addCriterion("testTime between", value1, value2, "testtime");
            return (Criteria) this;
        }

        public Criteria andTesttimeNotBetween(Date value1, Date value2) {
            addCriterion("testTime not between", value1, value2, "testtime");
            return (Criteria) this;
        }

        public Criteria andTestnumbersIsNull() {
            addCriterion("testNumbers is null");
            return (Criteria) this;
        }

        public Criteria andTestnumbersIsNotNull() {
            addCriterion("testNumbers is not null");
            return (Criteria) this;
        }

        public Criteria andTestnumbersEqualTo(Integer value) {
            addCriterion("testNumbers =", value, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersNotEqualTo(Integer value) {
            addCriterion("testNumbers <>", value, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersGreaterThan(Integer value) {
            addCriterion("testNumbers >", value, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersGreaterThanOrEqualTo(Integer value) {
            addCriterion("testNumbers >=", value, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersLessThan(Integer value) {
            addCriterion("testNumbers <", value, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersLessThanOrEqualTo(Integer value) {
            addCriterion("testNumbers <=", value, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersIn(List<Integer> values) {
            addCriterion("testNumbers in", values, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersNotIn(List<Integer> values) {
            addCriterion("testNumbers not in", values, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersBetween(Integer value1, Integer value2) {
            addCriterion("testNumbers between", value1, value2, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTestnumbersNotBetween(Integer value1, Integer value2) {
            addCriterion("testNumbers not between", value1, value2, "testnumbers");
            return (Criteria) this;
        }

        public Criteria andTeststatusIsNull() {
            addCriterion("testStatus is null");
            return (Criteria) this;
        }

        public Criteria andTeststatusIsNotNull() {
            addCriterion("testStatus is not null");
            return (Criteria) this;
        }

        public Criteria andTeststatusEqualTo(Short value) {
            addCriterion("testStatus =", value, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusNotEqualTo(Short value) {
            addCriterion("testStatus <>", value, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusGreaterThan(Short value) {
            addCriterion("testStatus >", value, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusGreaterThanOrEqualTo(Short value) {
            addCriterion("testStatus >=", value, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusLessThan(Short value) {
            addCriterion("testStatus <", value, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusLessThanOrEqualTo(Short value) {
            addCriterion("testStatus <=", value, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusIn(List<Short> values) {
            addCriterion("testStatus in", values, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusNotIn(List<Short> values) {
            addCriterion("testStatus not in", values, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusBetween(Short value1, Short value2) {
            addCriterion("testStatus between", value1, value2, "teststatus");
            return (Criteria) this;
        }

        public Criteria andTeststatusNotBetween(Short value1, Short value2) {
            addCriterion("testStatus not between", value1, value2, "teststatus");
            return (Criteria) this;
        }

        public Criteria andOffersourceIsNull() {
            addCriterion("offerSource is null");
            return (Criteria) this;
        }

        public Criteria andOffersourceIsNotNull() {
            addCriterion("offerSource is not null");
            return (Criteria) this;
        }

        public Criteria andOffersourceEqualTo(String value) {
            addCriterion("offerSource =", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceNotEqualTo(String value) {
            addCriterion("offerSource <>", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceGreaterThan(String value) {
            addCriterion("offerSource >", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceGreaterThanOrEqualTo(String value) {
            addCriterion("offerSource >=", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceLessThan(String value) {
            addCriterion("offerSource <", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceLessThanOrEqualTo(String value) {
            addCriterion("offerSource <=", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceLike(String value) {
            addCriterion("offerSource like", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceNotLike(String value) {
            addCriterion("offerSource not like", value, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceIn(List<String> values) {
            addCriterion("offerSource in", values, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceNotIn(List<String> values) {
            addCriterion("offerSource not in", values, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceBetween(String value1, String value2) {
            addCriterion("offerSource between", value1, value2, "offersource");
            return (Criteria) this;
        }

        public Criteria andOffersourceNotBetween(String value1, String value2) {
            addCriterion("offerSource not between", value1, value2, "offersource");
            return (Criteria) this;
        }

        public Criteria andIspassthirdIsNull() {
            addCriterion("isPassThird is null");
            return (Criteria) this;
        }

        public Criteria andIspassthirdIsNotNull() {
            addCriterion("isPassThird is not null");
            return (Criteria) this;
        }

        public Criteria andIspassthirdEqualTo(Integer value) {
            addCriterion("isPassThird =", value, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdNotEqualTo(Integer value) {
            addCriterion("isPassThird <>", value, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdGreaterThan(Integer value) {
            addCriterion("isPassThird >", value, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdGreaterThanOrEqualTo(Integer value) {
            addCriterion("isPassThird >=", value, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdLessThan(Integer value) {
            addCriterion("isPassThird <", value, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdLessThanOrEqualTo(Integer value) {
            addCriterion("isPassThird <=", value, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdIn(List<Integer> values) {
            addCriterion("isPassThird in", values, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdNotIn(List<Integer> values) {
            addCriterion("isPassThird not in", values, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdBetween(Integer value1, Integer value2) {
            addCriterion("isPassThird between", value1, value2, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andIspassthirdNotBetween(Integer value1, Integer value2) {
            addCriterion("isPassThird not between", value1, value2, "ispassthird");
            return (Criteria) this;
        }

        public Criteria andAsyncidIsNull() {
            addCriterion("asyncId is null");
            return (Criteria) this;
        }

        public Criteria andAsyncidIsNotNull() {
            addCriterion("asyncId is not null");
            return (Criteria) this;
        }

        public Criteria andAsyncidEqualTo(String value) {
            addCriterion("asyncId =", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidNotEqualTo(String value) {
            addCriterion("asyncId <>", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidGreaterThan(String value) {
            addCriterion("asyncId >", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidGreaterThanOrEqualTo(String value) {
            addCriterion("asyncId >=", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidLessThan(String value) {
            addCriterion("asyncId <", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidLessThanOrEqualTo(String value) {
            addCriterion("asyncId <=", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidLike(String value) {
            addCriterion("asyncId like", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidNotLike(String value) {
            addCriterion("asyncId not like", value, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidIn(List<String> values) {
            addCriterion("asyncId in", values, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidNotIn(List<String> values) {
            addCriterion("asyncId not in", values, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidBetween(String value1, String value2) {
            addCriterion("asyncId between", value1, value2, "asyncid");
            return (Criteria) this;
        }

        public Criteria andAsyncidNotBetween(String value1, String value2) {
            addCriterion("asyncId not between", value1, value2, "asyncid");
            return (Criteria) this;
        }

        public Criteria andTesttypeIsNull() {
            addCriterion("testType is null");
            return (Criteria) this;
        }

        public Criteria andTesttypeIsNotNull() {
            addCriterion("testType is not null");
            return (Criteria) this;
        }

        public Criteria andTesttypeEqualTo(Short value) {
            addCriterion("testType =", value, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeNotEqualTo(Short value) {
            addCriterion("testType <>", value, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeGreaterThan(Short value) {
            addCriterion("testType >", value, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeGreaterThanOrEqualTo(Short value) {
            addCriterion("testType >=", value, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeLessThan(Short value) {
            addCriterion("testType <", value, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeLessThanOrEqualTo(Short value) {
            addCriterion("testType <=", value, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeIn(List<Short> values) {
            addCriterion("testType in", values, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeNotIn(List<Short> values) {
            addCriterion("testType not in", values, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeBetween(Short value1, Short value2) {
            addCriterion("testType between", value1, value2, "testtype");
            return (Criteria) this;
        }

        public Criteria andTesttypeNotBetween(Short value1, Short value2) {
            addCriterion("testType not between", value1, value2, "testtype");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}